/**
 *
 * Created by fuhao on 4/14/16.
 */
var params = {left: 0, top: 0, currentX: 0, currentY: 0, flag: false};
var getCss = function (o, key) {
    return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o, false)[key]
};
var drag = function (bar, target, callback) {
    if (getCss(target, "left") !== "auto") {
        params.left = getCss(target, "left")
    }
    if (getCss(target, "top") !== "auto") {
        params.top = getCss(target, "top")
    }
    if(bar)bar.onmousedown = function (event) {
        params.flag = true;
        if (!event) {
            event = window.event;
            bar.onselectstart = function () {
                return false
            }
        }
        var e = event;
        params.currentX = e.clientX;
        params.currentY = e.clientY
    };
    document.onmouseup = function () {
        params.flag = false;
        if (getCss(target, "left") !== "auto") {
            params.left = getCss(target, "left")
        }
        if (getCss(target, "top") !== "auto") {
            params.top = getCss(target, "top")
        }
    };
    document.onmousemove = function (event) {
        var e = event ? event : window.event;
        if (params.flag) {
            var nowX = e.clientX, nowY = e.clientY;
            var disX = nowX - params.currentX, disY = nowY - params.currentY;
            target.style.left = parseInt(params.left) + disX + "px";
            target.style.top = parseInt(params.top) + disY + "px"
        }
        if (typeof callback == "function") {
            callback(parseInt(params.left) + disX, parseInt(params.top) + disY)
        }
    }
};
